package org.magicbox.qjunTPO.service.impl;

import org.magicbox.qjunTPO.service.UploadService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;


@Service
public class UploadServiceImpl implements UploadService {
    @Value("${file.uploadPath}")
    private String targgetFileString ;

    @Override
    public String uploadImg(MultipartFile multipartFile, String dir) {
        //获取文件名
        String filename = multipartFile.getOriginalFilename();

        //获取文件后缀
        String imgSuffix = filename.substring(filename.lastIndexOf("."));

        //防止文件重名 随机数加后缀
        String newfileName = UUID.randomUUID().toString()+imgSuffix;

        //获取日期，用日期名做文件上层文件夹名
        SimpleDateFormat dateFormat = new SimpleDateFormat("YY/MM/dd");//日期格式
        String datePath = dateFormat.format(new Date());//获取当前日期


        File targgetFile = new File(targgetFileString+dir,datePath);//指定目录/dir/dataPath


        if(!targgetFile.exists()) targgetFile.mkdirs();         //目录不存在则创建


        try {
            File targetFileName = new File(targgetFile,newfileName);//最终的存储位置+文件名

            multipartFile.transferTo(targetFileName);               //最重要的文件上传操作
            System.out.println("/"+dir+"/"+datePath+"/"+newfileName);
            //*************
            return "/"+dir+"/"+datePath+"/"+newfileName;
            //*************

        } catch (IOException e) {
            e.printStackTrace();
            return "fali";
        }
    }
}
